   *******************************************************
   *
    PRINTER OUTPUT H14 MET HANDSHAKE
   *
    HJC OTTEN EN PGJ DE BEER
   *
    UITGEBREIDE VERSIE VAN DE AL EERDER VERSCHENEN RS232 I
   INTERFACE ROUTINE
   MET HANDSHAKE , OPTIMALISATIE NAAR 4800 HZ 
   EN REGISTER BEVEILIGING
   OOK OPGENOMEN EEN PARALLEL KEYBOARD DRIVER PIA A 
   STROBE IN BIT 7
   *
    VERBINDEN VAN DEZE DEVICE DRIVERS MET MICRO ADE
   *******************************************************
   ;
PRINT ORG $0300
   ;
   ZEROPAGE
   ;
CHAR * $00FE
   ;
   PIA ADRES
   ;
PIAAD * $1700
PIAADD * $1701
PIABD * $1702
PIABDD * $1703
   ;
   MONITOR ADRESSEN
   ;
OUTCH * $1EA0
GETCH * $1E5A
   ;
   MICRO-ADE ADRESSEN
   ;
MAWS * $2031
   ;
   PRINTER ROUTINE 
   ;
UITPR PHP  BEWAAR REGISTERS
 PHA  SAVE REGISTERS OP STACK
 TYA
 PHA
 TXA
 PHA
 LDA CHAR
 PHA
 TSX
 LDAAX $0104
 STA CHAR
BUFFV LDA PIABD PRINTER RTS
 ANDIM $02 READY BIT 2
 BEQ BUFFV WACHT TOT PRINTER KLAAR
 LDA PIABD
 ORAIM $01 STARTBIT
 STA PIABD
 JSR TDELAY
 LDXIM $08 8 BITS VERSTUREN
 BPL VOLGB DUMMY
VOLGB LDA PIABD
 LSR CHAR LSB IN CARRY
 BCS EEN
 ORAIM $01 BIT0IS 0
 BCC BUIT
 NOP  TIMING
EEN ANDIM $FE BIT IS 1
BUIT STA PIABD
 JSR TDELAY
 DEX  VOLGENDE BIT
 BNE VOLGB
 LDA PIABD
 ANDIM $FE STOPBIT
 NOP
 NOP
 NOP  TIMING
 BPL DUMM
DUMM STA PIABD
 JSR TDELAY
 PLA 
 STA CHAR
 PLA 
 TAX
 PLA
 TAY
 PLA
 PLP
 RTS
   ;
    DELAY ROUTINE 4800 BAUD
   ;
TDELAY LDYIM $22
DLOOP DEY
 BNE DLOOP
 NOP
 RTS
   ;
   *******************************************************
   ;
    PARALLEL INPUT KEYBOARD
   ;
   *******************************************************
   ;
INKEYB BIT PIAAD
 BPL INKEYB BIT 7 IS STROBE
STROBE BIT PIAAD WACHT OP EINDE STARTBIT
 BMI STROBE
 LDA PIAAD
 PHA       
 JSR OUTCH ECHO CHARACTER
 PLA
 RTS
   ;
   INPUT AAN MICRO ADE HANGEN
   ;
PKB PHA
 LDAIM $00
 STA PIAADD
 LDAIM INKEYB
 STA $2E9E MICRO ADE INPUT VECTOR
 LDAIM INKEYB /
 STA $2E9F
 PLA
 JMP MAWS
   ;
   SERIE KEYBOARD VIA KIM TTY AAN MICRO ADE HANGEN
   ;
SKB LDAIM GETCH
 STA $2E9E
 LDAIM GETCH /
 STA $2E9F
 JMP MAWS
   ;
   PRINTER PARALLEL VIDEO AAN MICRO ADE HANGEN 
   ;
PRAAN LDAIM PIABDD
 ORAIM $01
 ANDIM $7D
 STA PIABDD BIT0 UITGANG, BIT1 INGANG
 LDAIM PRENVID
 STA $2EA1
 LDAIM PRENVID /
 STA $2EA2 VERVANG MICRO ADE OUTPUT VECTOR 
 LDAIM $00
 JSR UITPR
 LDAIM $1B ESCAPE NAAR PRINTER
 JSR UITPR
 LDAIM $75
 JSR UITPR
 LDAIM $10
 JSR UITPR
 JMP MAWS
   ;
   PRINTER PARALLEL VIDEO OUTPUT
   ;
PRENVID PHA
 JSR OUTCH
 PLA
 JSR UITPR
 RTS
   ;
   ALLEEN VIDEO OUTPUT M A
   ;
PRUIT LDAIM OUTCH
 STA $2EA1 MICRO ADE OUTPUT VECTOR NAAR KIM TTY
 LDAIM OUTCH /
 STA $2EA2
 JMP $2031
